#if !defined(_DAEMON_SUB_PROCESS)
#define _DAEMON_SUB_PROCESS
#include <stdlib.h>


#define MAX_FAIL_COUNT 10
#define EXE_NAME "/usr/bin/gateway"
//#define EXE_NAME "/home/atguigu/workspace/gateway/test_gateway"
//子进程信息的结构体
typedef struct
{
	pid_t pid; //进程编号
	char *sub_cmd; //子进程的命令  /ota /app /....
	int fail_count; //失败次数

}sub_process_t;


//1  初始化自己 填写子进程的相关参数 ： 程序名 参数 
sub_process_t *daemon_sub_process_init(char *sub_cmd); 

//2  检查并启动子进程 
//   检查 waitpid 根据 返回值 和 状态status
//  启动就是用fork execve 启动子进程
int daemon_sub_process_check_start(sub_process_t *sub_process);

//3  子进程结束
// kill 掉 
// 回收相关资源
void daemon_sub_process_exit(sub_process_t *sub_process);


#endif // _DAEMON_SUB_PROCESS
